<%--


--%>

<%@page contentType="text/html" pageEncoding="UTF-8" %>

<%@taglib prefix="f" uri="http://java.sun.com/jsf/core" %>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html" %>
<%@taglib prefix="a4j" uri="http://richfaces.org/a4j" %>
<%@taglib prefix="rich" uri="http://richfaces.org/rich" %>

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Goodwill - Персональные цены</title>
    <link rel="stylesheet" href="resources/css/main.css"/>
    <link rel="stylesheet" href="resources/css/stylesheet.css"/>
    <style type="text/css">
        .c0, .c1
        {
            vertical-align:top;
            padding-top:10px;
            padding-left:3px;
            padding-right:3px;
        }
    </style>
</head>

<body>
<f:view>
<jsp:include page="menu.jsp"/>
<jsp:include page="status.jsp"/>
<h:form>
    <!-- Паджинатор -->
    <h:panelGroup layout="block">
        <h:panelGroup id="pager" rendered="false">

            <h:outputText value="Страница: #{PersonalPricesBean.page}" styleClass="b"/>

            <a4j:commandLink action="#{PersonalPricesBean.toBegin}" value="[<<" reRender="tblPersonalPrices,pager" styleClass="pager_arr"/>
            <a4j:commandLink action="#{PersonalPricesBean.longPrevPage}" value="<<" reRender="tblPersonalPrices,pager" styleClass="pager_arr"/>
            <a4j:commandLink action="#{PersonalPricesBean.prevPage}" value="<" reRender="tblPersonalPrices,pager" styleClass="pager_arr"/>


            <h:panelGroup id="pager_nums">
                <a4j:repeat value="#{PersonalPricesBean.pageIndexes}" var="pageIndex">
                    <a4j:commandLink action="#{PersonalPricesBean.applyPage}" value="#{pageIndex.num}" styleClass="pager_page" reRender="tblPersonalPrices,pager">
                        <a4j:actionparam name="page_id" assignTo="#{PersonalPricesBean.page}" value="#{pageIndex.num}"/>
                    </a4j:commandLink>
                </a4j:repeat>
            </h:panelGroup>

            <a4j:commandLink action="#{PersonalPricesBean.nextPage}" value=">" reRender="tblPersonalPrices,pager" styleClass="pager_arr"/>
            <a4j:commandLink action="#{PersonalPricesBean.longNextPage}" value=">>" reRender="tblPersonalPrices,pager" styleClass="pager_arr"/>
            <a4j:commandLink action="#{PersonalPricesBean.toEnd}" value=">>]" reRender="tblPersonalPrices,pager" styleClass="pager_arr"/>

            <h:outputText value="(всего: #{PersonalPricesBean.pagesCount})"/>
        </h:panelGroup>
        <!-- ---------- -->

        <rich:spacer width="10"/>

        <!-- Фильтр -->

        <h:outputText value="Фильтр: " styleClass="b"/>

        <h:outputText value="ФИО клиента"/>
        <h:inputText value="#{SessionBean.personalPricesFilter.clientName}" styleClass="f_tb_l"/>

        <h:outputText value="Наименование товара"/>
        <h:inputText value="#{SessionBean.personalPricesFilter.goodName}" styleClass="f_tb_l"/>

        <h:outputText value="Дата действия"/>
        <rich:calendar value="#{SessionBean.personalPricesFilter.dateAsUtilDate}" locale="RU" datePattern="dd.MM.yyyy" styleClass="f_tb_s"/>

        <a4j:commandButton reRender="tblPersonalPrices,pager" value="Применить" action="#{PersonalPricesBean.applyFilter}"/>
        <!-- ------ -->

    </h:panelGroup>

        <rich:dataTable value="#{PersonalPricesBean.personalPrices}" var="personalprice" id="tblPersonalPrices" styleClass="full" rowKeyVar="row" rows="20">
        <f:facet name="header">
            <h:panelGroup>
                <h:outputText value="Персональные цены"/>
                <rich:spacer width="10"/>
                <a4j:commandLink action="#{PersonalPricesBean.resetAddPanel}"
                                 oncomplete="#{rich:component('addPersonalPricesPanelSafe')}.show()"
                                 id="bAddPersonalPrices"
                                 styleClass="ha"
                                 rendered="#{SecurityBean.isRoleAdministrator}">
                    <a4j:actionparam name="personalPrices_id" assignTo="#{PersonalPricesBean.personalPriceId}" value="#{-1}"/>
                    <a4j:actionparam name="page" assignTo="#{PersonalPricesBean.page}" value="#{PersonalPricesBean.page}"/>
                    <h:graphicImage value="/resources/img/add_16.png"/>
                    <h:outputText value="Добавить персональную цену" styleClass="fwhite"/>
                </a4j:commandLink>
                <rich:toolTip for="bAddPersonalPrices" value="Установить персональную цену для клиента" styleClass="hint"/>
            </h:panelGroup>
        </f:facet>
        <rich:column rendered="#{SecurityBean.isRoleAdministrator}">

            <!-- Операции с персональными ценами --------------------------------------------------------------------------------------------------->

            <!-- Редактировать персональную цену -->
            <%--<a4j:commandLink ajaxSingle="true" id="editlink" action="#"--%>
                             <%--oncomplete="#{rich:component('addPersonalPricesPanel')}.show()">--%>
                <%--<a4j:actionparam name="personalPrices_id" assignTo="#{PersonalPricesBean.personalPriceId}" value="#{personalprice.id}"/>--%>
                <%--<h:graphicImage value="/resources/img/edit.gif"/>--%>
            <%--</a4j:commandLink>--%>
            <%--<rich:toolTip for="editlink" value="Редактировать"/>--%>

            <!-- Удалить персональную цену -->
            <a4j:commandLink ajaxSingle="true" id="deletelink"
                             oncomplete="#{rich:component('removePersonalPricesPanel')}.show()">
                <a4j:actionparam name="personalPrices_id" assignTo="#{PersonalPricesBean.personalPriceId}" value="#{personalprice.id}"/>
                <h:graphicImage value="/resources/img/delete.gif"/>
            </a4j:commandLink>
            <rich:toolTip for="deletelink" value="Удалить персональную цену"/>

            <!-- ---------------------------------------------------------------------------------------------------------------------->

        </rich:column>

            <rich:column>
                <f:facet name="header">
                    <h:outputText value="№"/>
                </f:facet>
                <h:outputText value="#{row + 1}. "/>
            </rich:column>

        <rich:column>
            <f:facet name="header">
                <h:outputText value="ФИО клиента"/>
            </f:facet>
            <h:outputText value="#{personalprice.client.companyName}"/>
        </rich:column>
        <%--<rich:column>--%>
            <%--<f:facet name="header">--%>
                <%--<a4j:commandLink onclick="document.location='ClientGroups.jsf'" action="#" ajaxSingle="true">--%>
                    <%--<h:outputText value="Клиентская группа"/>--%>
                <%--</a4j:commandLink>--%>
            <%--</f:facet>--%>
            <%--<h:outputText value="#{personalprice.client.clientGroup.name}"/>--%>
        <%--</rich:column>--%>
        <rich:column>
            <f:facet name="header">
                <h:outputText value="Код товара"/>
            </f:facet>
            <a4j:commandLink action="#" oncomplete="document.location='GoodsPage.jsf'">
                <a4j:actionparam name="good_name" assignTo="#{SessionBean.goodsFilter.name}" value=""/>
                <a4j:actionparam name="good_code" assignTo="#{SessionBean.goodsFilter.code}" value="#{personalprice.good.code}"/>
                <a4j:actionparam name="good_type" assignTo="#{SessionBean.goodsFilter.goodTypeId}" value="-1"/>
                <h:outputText value="#{personalprice.good.code}"/>
            </a4j:commandLink>
        </rich:column>
        <rich:column>
            <f:facet name="header">
                <h:outputText value="Наименование товара"/>
            </f:facet>
            <a4j:commandLink action="#" oncomplete="document.location='GoodsPage.jsf'">
                <a4j:actionparam name="good_name" assignTo="#{SessionBean.goodsFilter.name}" value="#{personalprice.good.name}"/>
                <a4j:actionparam name="good_code" assignTo="#{SessionBean.goodsFilter.code}" value=""/>
                <a4j:actionparam name="good_type" assignTo="#{SessionBean.goodsFilter.goodTypeId}" value="-1"/>
                <h:outputText value="#{personalprice.good.name}"/>
            </a4j:commandLink>
        </rich:column>
        <rich:column>
            <f:facet name="header">
                <a4j:commandLink onclick="document.location='GoodTypesPage.jsf'" action="#" ajaxSingle="true">
                    <h:outputText value="Группа товаров"/>
                </a4j:commandLink>
            </f:facet>
            <a4j:commandLink action="#" oncomplete="document.location='GoodsPage.jsf'">
                <a4j:actionparam name="good_name" assignTo="#{SessionBean.goodsFilter.name}" value=""/>
                <a4j:actionparam name="good_code" assignTo="#{SessionBean.goodsFilter.code}" value=""/>
                <a4j:actionparam name="good_type" assignTo="#{SessionBean.goodsFilter.goodTypeId}" value="#{personalprice.good.goodTypeId}"/>
                <h:outputText value="#{personalprice.good.goodType.name}"/>
            </a4j:commandLink>
        </rich:column>
        <rich:column>
            <f:facet name="header">
                <h:outputText value="Дата начала"/>
            </f:facet>
            <h:outputText value="#{personalprice.begDate}"><f:converter converterId="TimestampConverter"/></h:outputText>
        </rich:column>
        <rich:column>
            <f:facet name="header">
                <h:outputText value="Дата окончания"/>
            </f:facet>
            <h:outputText value="#{personalprice.endDate}"><f:converter converterId="TimestampConverter"/></h:outputText>
        </rich:column>
        <rich:column>
            <f:facet name="header">
                <h:outputText value="Персональная цена"/>
            </f:facet>
            <h:outputText value="#{personalprice.price}"/>
        </rich:column>
        <rich:column>
            <f:facet name="header">
                <h:outputText value="Минимальная цена"/>
            </f:facet>
            <h:outputText value="#{personalprice.good.minPrice}"/>
        </rich:column>
            <f:facet name="footer">
                <rich:datascroller id="datascroller"/>
            </f:facet>
    </rich:dataTable>
</h:form>

<!-- ---------------------------------------------------------------------------------------------------------------------->

 <rich:modalPanel id="addPersonalPricesPanel" autosized="true" width="550">
    <f:facet name="header">
        <h:outputText value="Введите данные о новой цене"/>
    </f:facet>
    <f:facet name="controls">
        <h:graphicImage value="/resources/img/close.png" styleClass="hidelink"
                        onclick="#{rich:component('addPersonalPricePanel')}.hide();return false;"/>
    </f:facet>
    <h:form>
        <a4j:outputPanel ajaxRendered="true">

            <rich:messages layout="list">
                <f:facet name="header">
                    <h:outputText value="Информация о введенных данных:"/>
                </f:facet>
                <f:facet name="errorMarker">
                    <h:graphicImage value="/resources/img/ajax_error.gif"/>
                </f:facet>
            </rich:messages>

            <h:inputHidden value="#{PersonalPricesBean.personalPrice.id}"/>
            <h:inputHidden value="#{PersonalPricesBean.personalPriceId}"/>
            <h:inputHidden value="#{PersonalPricesBean.page}"/>

            <h:panelGrid columns="2" styleClass="full" columnClasses="dleft,dright" cellspacing="0" cellpadding="0">

                <h:outputText value="ФИО клиента"/>
                <h:selectOneMenu value="#{PersonalPricesBean.personalPrice.clientId}"
                                 validator="#{PersonalPricesBean.validateClientId}">
                    <f:selectItems value="#{PersonalPricesBean.usersList}"/>
                </h:selectOneMenu>

                <h:outputText value="Наименование товара"/>
                <h:selectOneMenu value="#{PersonalPricesBean.personalPrice.goodId}"
                                 validator="#{PersonalPricesBean.validateGoodId}">
                    <f:selectItems value="#{PersonalPricesBean.goodsList}"/>
                </h:selectOneMenu>

                <h:outputText value="Дата начала"/>
                <rich:calendar value="#{PersonalPricesBean.personalPrice.begDateAsUtilDate}" locale="RU" datePattern="dd.MM.yyyy"
                               styleClass="f_tb_s" required="true"
                             requiredMessage="Поле дата начала должно быть заполнено"/>

                <h:outputText value="Дата завершения"/>
                <rich:calendar value="#{PersonalPricesBean.personalPrice.endDateAsUtilDate}" locale="RU" datePattern="dd.MM.yyyy"
                               styleClass="f_tb_s" required="true"
                               requiredMessage="Поле дата окончания должно быть заполнено"/>

                <h:outputText value="Персональная цена"/>
                <h:inputText value="#{PersonalPricesBean.personalPrice.price}"
                             required="true"
                             requiredMessage="Поле цена должно быть заполнено"
                             validator="#{PersonalPricesBean.validatePriceInteger}"
                             validatorMessage="Цена должна быть положительным числом"/>

            </h:panelGrid>

            <h:panelGrid columns="2" styleClass="full" columnClasses="butLeft,butRight" cellspacing="0" cellpadding="0">
                <a4j:commandButton value="Сохранить"
                                   action="#{PersonalPricesBean.addPersonalPrice}"
                                   reRender="tblPersonalPrices,pager"
                                   styleClass="btnsz"
                                   oncomplete="if(#{!PersonalPricesBean.hasFacesErrors}) #{rich:component('addPersonalPricesPanel')}.hide();">
                </a4j:commandButton>
                <a4j:commandButton value="Отменить"
                                   styleClass="btnsz"
                                   onclick="#{rich:component('addPersonalPricesPanel')}.hide();return false;"/>
            </h:panelGrid>

        </a4j:outputPanel>
    </h:form>
</rich:modalPanel>

<rich:modalPanel id="addPersonalPricesPanelSafe" autosized="true" width="700">
    <f:facet name="header">
        <h:outputText value="Введите данные о новой цене"/>
    </f:facet>
    <f:facet name="controls">
        <h:graphicImage value="/resources/img/close.png" styleClass="hidelink" onclick="#{rich:component('addPersonalPricePanelSafe')}.hide();return false;"/>
    </f:facet>
    <h:form>
        <a4j:outputPanel ajaxRendered="true">

            <jsp:include page="messages.jsp"/>

            <h:panelGrid columns="2" styleClass="full" cellspacing="0" cellpadding="0" columnClasses="c0,c1">
                <h:panelGroup>
                    <h:outputText value="Товар" styleClass="b"/><br>
                    <h:outputText value="Выберите товар, на который будет установлена персональная цена" styleClass="comment"/>
                </h:panelGroup>
                <h:panelGroup>
                    <h:outputText value="Клиент" styleClass="b"/><br>
                    <h:outputText value="Выберите клиента, которому будет назначена персональная цена" styleClass="comment"/>
                </h:panelGroup>
                <h:panelGroup>
                    <h:panelGrid columns="2" cellpadding="0" cellspacing="0" columnClasses="lt,rt">
                        <h:outputText value="Группа товаров"/>
                        <h:selectOneMenu value="#{PersonalPricesBean.createPriceGoodTypeFilter}">
                            <f:selectItems value="#{GoodTypesBean.goodTypesAsSelectItems}"/>
                        </h:selectOneMenu>
                        <h:outputText value="Код товара"/>
                        <h:inputText value="#{PersonalPricesBean.createPriceGoodCodeFilter}"/>
                        <a4j:commandLink action="#{PersonalPricesBean.searchGood}" value="Поиск товара*"/>
                    </h:panelGrid>
                </h:panelGroup>
                <h:panelGroup>
                    <h:panelGrid columns="2" cellpadding="0" cellspacing="0" columnClasses="lt,rt">
                        <h:outputText value="Наименование компании"/>
                        <h:inputText value="#{PersonalPricesBean.createPriceClientNameFilter}"/>
                        <a4j:commandLink action="#{PersonalPricesBean.searchClient}" value="Поиск клиента*"/>
                    </h:panelGrid>
                </h:panelGroup>
                <h:panelGroup id="goodsPanel">
                    <h:selectOneListbox size="20" style="width:100%" value="#{PersonalPricesBean.personalPrice.goodId}">
                        <f:selectItems value="#{PersonalPricesBean.filteredGoods}"/>
                    </h:selectOneListbox>
                    <br>
                    <h:outputText styleClass="comment" value="*В списке отображаются первые 20 записей"/>
                </h:panelGroup>
                <h:panelGroup id="clientsPanel">
                    <h:selectOneListbox size="20" style="width:100%" value="#{PersonalPricesBean.personalPrice.clientId}">
                        <f:selectItems value="#{PersonalPricesBean.filteredClients}"/>
                    </h:selectOneListbox>
                    <h:outputText styleClass="comment" value="*В списке отображаются первые 20 записей"/>
                </h:panelGroup>
                <h:panelGroup>
                    <h:panelGrid columns="2" cellpadding="0" cellspacing="0" columnClasses="lt,rt">
                        <h:outputText value="Дата начала" styleClass="b"/>
                        <rich:calendar locale="RU"
                                       datePattern="dd.MM.yyyy"
                                       value="#{PersonalPricesBean.personalPrice.begDateAsUtilDate}"/>
                        <h:outputText value="Дата окончания" styleClass="b"/>
                        <rich:calendar locale="RU"
                                       datePattern="dd.MM.yyyy"
                                       value="#{PersonalPricesBean.personalPrice.endDateAsUtilDate}"/>
                    </h:panelGrid>
                </h:panelGroup>
                <h:panelGroup>
                    <h:panelGrid columns="2" cellpadding="0" cellspacing="0" columnClasses="lt,rt">
                        <h:outputText value="Персональная цена" styleClass="b"/>
                        <h:inputText value="#{PersonalPricesBean.personalPrice.price}"
                                converterMessage="Цена должна быть числом"/>
                    </h:panelGrid>
                </h:panelGroup>
            </h:panelGrid>

            <h:panelGrid columns="2" styleClass="full" columnClasses="butLeft,butRight" cellspacing="0" cellpadding="0">
                <a4j:commandButton value="Сохранить"
                                   action="#{PersonalPricesBean.addPersonalPrice}"
                                   reRender="tblPersonalPrices,pager"
                                   styleClass="btnsz"
                                   oncomplete="if(#{!PersonalPricesBean.hasFacesErrors}) #{rich:component('addPersonalPricesPanelSafe')}.hide();">
                </a4j:commandButton>
                <a4j:commandButton value="Отменить"
                                   styleClass="btnsz"
                                   onclick="#{rich:component('addPersonalPricesPanelSafe')}.hide();return false;"/>
            </h:panelGrid>

        </a4j:outputPanel>
    </h:form>
</rich:modalPanel>

<rich:modalPanel id="removePersonalPricesPanel" autosized="true" width="600">
    <f:facet name="header">
        <h:outputText value="Внимание!"/>
    </f:facet>
    <f:facet name="controls">
        <h:graphicImage value="/resources/img/close.png" styleClass="hidelink"
                        onclick="#{rich:component('removePersonalPricesPanel')}.hide();return false;"/>
    </f:facet>
    <a4j:outputPanel ajaxRendered="true">
        <h:form>
            <jsp:include page="messages.jsp"/>

            <h:inputHidden value="#{PersonalPricesBean.personalPrice.id}"/>
            <h:inputHidden value="#{PersonalPricesBean.personalPriceId}"/>

            <h:panelGrid columns="2" cellpadding="0" cellspacing="0" columnClasses="lt,rt">
                <h:graphicImage value="/resources/img/warning_32.png"/>
                <h:panelGroup>
                    <h:outputText value="Удалить персональную цену?"/>
                    <h:panelGrid columns="2" cellpadding="0" cellspacing="0" columnClasses="lt,rt">
                        <h:outputText value="Товар" styleClass="b"/>
                        <h:outputText value="#{PersonalPricesBean.personalPrice.good.name}"/>
                        <h:outputText value="Дата начала действия цены" styleClass="b"/>
                        <h:outputText value="#{PersonalPricesBean.personalPrice.begDate == null ? 'не установлена' : PersonalPricesBean.personalPrice.begDate}"/>
                        <h:outputText value="Дата окончания действия цены" styleClass="b"/>
                        <h:outputText value="#{PersonalPricesBean.personalPrice.endDate == null ? 'не установлена' : PersonalPricesBean.personalPrice.endDate}"/>
                        <h:outputText value="Цена" styleClass="b"/>
                        <h:outputText value="#{PersonalPricesBean.personalPrice.price}"/>
                    </h:panelGrid>
                </h:panelGroup>
            </h:panelGrid>

            <h:panelGrid columns="2" styleClass="full" columnClasses="butLeft,butRight" cellspacing="0" cellpadding="0">
                <a4j:commandButton value="Да"
                                   action="#{PersonalPricesBean.removePersonalPrice}"
                                   reRender="tblPersonalPrices,pager"
                                   styleClass="btnsz"
                                   oncomplete="if(#{!PersonalPricesBean.hasFacesErrors}) #{rich:component('removePersonalPricesPanel')}.hide();"/>
                <a4j:commandButton value="Нет"
                                   styleClass="btnsz"
                                   onclick="#{rich:component('removePersonalPricesPanel')}.hide();return false;"/>
            </h:panelGrid>
        </h:form>
    </a4j:outputPanel>
</rich:modalPanel>

</f:view>
</body>
</html>
